Project - description
Project
Description
The project should be implemented using ROS2 and contain nodes you
created yourselves. Using external packages (e.g. usb_cam)
is also possible and recommended.
The goal of the project is to create an interface for controlling a robot. An example process should look as follows:
- Run the camera driver.
- Run your own node(s) for controlling the robot.
- Run the robot driver.
- Demonstrate how the interface works.
The ROS package created as part of the project should be published on GitHub, with commits (more than one) from all authors of the project. The repository must contain a README.md file with short documentation of the package (how to install it, run it, etc.).
Basic version of the node (grade = 3.0):
- clicking a point in the window: depending on whether the point is above or below the center of the screen, the mobile robot (FossBot) moves forward or backward.
Possible ways to improve the grade:
- +0.5: Create a launch file that automatically starts all the nodes you have developed and sets their parameter values,
- +0.5: Develop a Python node that visually displays at least two robot signals of your choice in a dashboard or real-time plot (e.g. linear velocity, position, or camera images),
- +0.5: Dockerize the application and split the project into two containers using Docker Compose (one container for the robot and camera drivers, the other for your own nodes),
- +0.5: Control the robot with two new and distinct
gestures. For this option, the following requirements
must be met:
- Run a camera driver using either your laptop’s built-in camera or an external camera. If you do not have access to a camera, you can use the cameras in the laboratory; we recommend recording your gestures there in a rosbag, so you can continue working outside the lab.
- Develop a node that processes camera images to detect a hand and recognize two new gestures that are different from those introduced in Lab 08.
- Each gesture must trigger a distinct robot movement other than moving forward or backward (e.g. a 360-degree rotation to the left or right).
You control the robot by publishing commands on the
/cmd_vel topic.
Each group must present in person how the interface works and send a link to the GitHub repository.